Method of executing virtualized application able to run in virtualized environment

ABSTRACT

A method of executing a virtualized application able to run in a virtualized environment. The virtualized application includes application software and the virtualized environment. The application software includes a license monitor to search for a software license while monitoring an execution policy set by a software provider when software is installed or executed. The virtualized environment includes an environment monitor to monitor an execution environment provided to the application software by the virtualized environment. Therefore, it is possible to prevent software able to run in a virtualized environment from being freely copied without any limitations by the execution policy provided by the software provider.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of Korean Application No.2008-0074793, filed Jul. 30, 2008, in the Korean Intellectual PropertyOffice, the disclosure of which is incorporated herein by reference.

BACKGROUND

1. Field

Aspects of embodiments of the present invention relate to a method ofexecuting a virtualized application able to run in a virtualizedenvironment, and more particularly, to a method of executing avirtualized application, which is able to be integrated with avirtualized environment and able to run in the virtualized environmentso that it is possible to perform authentication.

2. Description of the Related Art

Recently, virtualization technologies using virtual machines have becomemore widespread. Virtualization technologies are mainly used toefficiently use resources. For example, virtualization technologiesenable a single computing system or a single server system to include aplurality of operating systems (OS).

Such virtualization technologies include system virtualization, OSvirtualization and application virtualization.

Among these, application virtualization enables general applications torun in the virtualized environment. Conventionally, it has been possiblefor a user to launch an application able to run in the virtualizedenvironment in an external computing environment using an external harddisk drive (HDD), but in this situation, the application generally doesnot directly interface with the external computing environment. In otherwords, the application is only able to interface with the externalcomputing environment through the virtualized environment.

Accordingly, it is impossible for the application itself to recognizechanges in the external computing environment, and thus the applicationmay be used in all computing environments without any limitation to thetype of computing environment. As a result, when such a conventionalapplication able to run in the virtualized environment is used, it isimpossible to prevent the application or virtualized environment frombeing illegally copied.

SUMMARY

Aspects of embodiments of the present invention relate to a method ofexecuting a virtualized application able to run in a virtualizedenvironment wherein it is possible to determine whether an executionpolicy pre-stored in the virtualized environment, and applied when thevirtualized application is installed, conforms with an actual executionpolicy applied to an actual execution environment.

According to an embodiment of the present invention, there is provided amethod of executing a virtualized application able to run in avirtualized environment, the method including using a computer toperform the steps of searching for a license pre-stored in thevirtualized application, upon an occurrence of an event to launch thevirtualized application, monitoring a system environment and determiningwhether license for the system environment conforms with the pre-storedlicense, and launching the virtualized application according to anexecution policy of the virtualized application, upon determining thatthe license for the system environment conforms with the pre-storedlicense.

According to an aspect of embodiments of the present invention, each ofthe two licenses may be a precondition required to perform the executionpolicy of the virtualized application.

According to an aspect of embodiments of the present invention, theexecution policy of the virtualized application may be updated by anexternal server.

According to an aspect of embodiments of the present invention, themethod may further include installing the virtualized application.

According to an aspect of embodiments of the present invention, thevirtualized environment may be an environment in which conditionsrequired for installing the virtualized application in the systemenvironment are set virtually.

According to an aspect of embodiments of the present invention, each ofthe two licenses may be one selected from the group including anidentification (ID), an execution period, the number of times ofexecution, the type and version of operating system (OS), and anexecution environment.

According to an embodiment of the present invention, there is provided amethod of executing a virtualized application able to run in avirtualized environment, the method including using a computer toperform the steps of receiving an updated execution policy, determiningwhether a license for a system environment conforms with a licensepre-stored in the virtualized application, and launching the virtualizedapplication according to the updated execution policy, upon determiningthat the license for the system environment conforms with the pre-storedlicense.

According to an aspect of embodiments of the present invention, thereceiving may include transmitting one of a plurality of executionpolicies pre-stored in the virtualized environment to an externalserver, determining whether the transmitted execution policy isup-to-date, and receiving the updated execution policy from the externalserver so as to be up-to-date, upon determining that the transmittedexecution policy is not up-to-date.

According to an aspect of embodiments of the present invention, thereceiving may include receiving the last updated execution policy amongthe plurality of execution policies pre-stored in the virtualizedenvironment.

According to an embodiment of the present invention, there is provided acomputer-readable recording medium having a program causing a computerto perform a method of executing a virtualized application able to runin a virtualized environment. The method may include searching for alicense pre-stored in the virtualized application, upon the occurrenceof an event to launch the virtualized application, monitoring a systemenvironment and determining whether a license for the system environmentconforms with the pre-stored license, and launching the virtualizedapplication according to an execution policy of the virtualizedapplication, upon determining that the license for the systemenvironment conforms with the pre-stored license.

According to an aspect of embodiments of the present invention, each ofthe two licenses may be a precondition required to perform the executionpolicy of the virtualized application.

According to an aspect of embodiments of the present invention, themethod may further include installing the virtualized application.

According to an embodiment of the present invention, there is provided acomputer-readable recording medium having a program causing a computerto perform a method of executing a virtualized application able to runin a virtualized environment. The method may include receiving anupdated execution policy, determining whether a license for a systemenvironment conforms with a license pre-stored in the virtualizedapplication, and launching the virtualized application according to theupdated execution policy, upon determining that the license for thesystem environment conforms with the pre-stored license.

According to an aspect of embodiments of the present invention, thereceiving may include transmitting one of a plurality of executionpolicies pre-stored in the virtualized environment to an externalserver, determining whether the transmitted execution policy isup-to-date, and receiving the updated execution policy from the externalserver so as to be up-to-date, upon determining that the transmittedexecution policy is not up-to-date.

According to an aspect of embodiments of the present invention, thereceiving may include receiving the last updated execution policy amongthe plurality of execution policies pre-stored in the virtualizedenvironment.

Additional aspects and/or advantages of the invention will be set forthin part in the description which follows and, in part, will be obviousfrom the description, or may be learned by practice of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

These and/or other aspects and advantages will become apparent and morereadily appreciated from the following description of the embodiments,taken in conjunction with the accompanying drawings of which:

FIG. 1 illustrates a flowchart of a method of executing a virtualizedapplication able to run in a virtualized environment according to anexemplary embodiment of the present invention;

FIG. 2 illustrates a block diagram of a virtualized application able torun in a virtualized environment according to an exemplary embodiment ofthe present invention;

FIG. 3 illustrates a detailed block diagram of the virtualizedapplication shown in FIG. 2, for example;

FIG. 4 illustrates a flowchart of a method of executing a virtualizedapplication able to run in a virtualized environment according toanother exemplary embodiment of the present invention;

FIG. 5 illustrates a block diagram explaining the principle of operationof a virtualized application able to run in a virtualized environment;

FIG. 6 illustrates an example of updating an execution policy; and

FIG. 7 illustrates another example of updating an execution policy.

DETAILED DESCRIPTION

Reference will now be made in detail to embodiments of the presentinvention, examples of which are illustrated in the accompanyingdrawings, wherein like reference numerals refer to like elementsthroughout. The embodiments are described below in order to explain theaspects of embodiments of the present invention by referring to thefigures.

FIG. 1 illustrates a flowchart of a method of executing a virtualizedapplication able to run in a virtualized environment according to anexemplary embodiment of the present invention. The method shown in FIG.1 includes installing the virtualized application (S110), searching fora license pre-stored in the virtualized application (S120), determiningwhether a license for a system environment conforms with the pre-storedlicense while monitoring the system environment (S130), and launchingthe virtualized application according to an execution policy of thevirtualized application (S140) if it is determined that the license forthe system environment conforms with the pre-stored license (S130-Y). Ifit is determined that the license for the system environment does notconform with the pre-stored license, then the method ends (S130-N). Themethod of executing the virtualized application will be described indetail with reference to FIGS. 2 and 3.

FIG. 2 illustrates a block diagram of a virtualized application 200 ableto run in a virtualized environment 230 according to an exemplaryembodiment of the present invention. In FIG. 2, the virtualizedapplication 200 includes application software 210 and the virtualizedenvironment 230.

The application software 210 may be a commonly used application programsuch as MS Word. In an embodiment of the present invention, theapplication software 210 may be launched according to an executionpolicy or use policy required by an application software provider. Here,the execution policy may restrict execution of the application software210, for example the execution policy may enable the applicationsoftware 210 to operate only with a certain central processing unit(CPU) or a certain operating system (OS).

The application software 210 may be integrated with the virtualizedenvironment 230, so it is possible for the virtualized environment 230to virtually provide an environment in which the application software210 is able to run. The virtualized environment 230 refers to anenvironment in which conditions required for installing the applicationsoftware 210 in a system environment, namely an execution environment300, are set virtually.

Accordingly, the virtualized application 200 may be executed in thevirtualized environment 230 regardless of the actual executionenvironment 300. Therefore, it is possible to launch the virtualizedapplication 200 in various computing systems without a need forre-installation whenever the execution environment 300 changes, and itis thus possible to increase the mobility of the application software210.

The application software 210 may include a license monitor 220. Thelicense monitor 220 searches for a software license while monitoring anexecution policy set by a software provider when software is installedor executed.

For example, if a software provider sets an execution policy statingthat ‘The application software 210 may be executed only when using acertain CPU’, a unique identification (ID) number (or a serial number)of the CPU may be used as a license for the application software 210.The license for the application software 210 refers to a preconditionrequired to determine whether the execution environment 300 satisfiesconditions for executing the application software 210, so the executionpolicy may contain the license for the application software 210.

The virtualized environment 230 may include an environment monitor 240.The environment monitor 240 monitors the execution environment 300provided to the application software 210 by the virtualized environment230.

Additionally, the virtualized application 200 may be executed in variousexecution environments. For example, the execution environment 300outside the virtualized application 200 may directly provide resourcesrequired when the application software 210 is executed, or mayindirectly provide resources required when the application software 210is mapped onto the virtualized environment 230.

FIG. 3 illustrates a detailed block diagram of the virtualizedapplication 200 shown in FIG. 2. The virtualized application 200 shownin FIG. 3 is configured in the same manner as the virtualizedapplication 200 shown in FIG. 2, except that the environment monitor 240of the virtualized environment 230 shown in FIG. 3 includes anenvironment identifier 242, a policy monitor 244 and an applicationlauncher 246.

The environment identifier 242 receives information on a license foundas a result of searching from the execution environment 300.

The policy monitor 244 receives an execution policy of the executionenvironment 300 while monitoring the execution environment 300. Theexecution policy of the execution environment 300 may be updated by anexternal policy server (not shown). Additionally, when a license isreceived by the environment identifier 242 from the executionenvironment 300, the policy monitor 244 determines whether the licensereceived from the execution environment 300 via the policy monitor 244conforms with a license for an execution policy pre-stored in thevirtualized environment 230.

When it is determined that the license received from the executionenvironment 300 conforms with the license for the execution policypre-stored in the virtualized environment 230, the application launcher246 launches the virtualized application 200 according to the executionpolicy of the application software 210 pre-stored in the virtualizedenvironment 230.

The method of executing the virtualized application 200 able to run inthe virtualized environment will be described in detail with referenceto FIGS. 1, 2 and 3.

The virtualized application 200 is installed in operation S110. Forexample, a user may install the virtualized application 200 using adesktop personal computer (PC) in his or her home.

After installing the virtualized application 200, the virtualizedapplication 200 may be connected to a user's notebook, a desktop PC in acompany or a desktop PC in a school via a mobile device providingstorage space. Here, the mobile device providing storage space mayinclude various consumer electronics providing storage space, forexample an external hard drive, a user serial bus (USB) flash memory, apersonal digital assistant (PDA) or a portable media player (PMP).Accordingly, the mobile device enables the mobility of the virtualizedapplication 200 to increase so that the virtualized application 200 maybe launched regardless of changes in the execution environment 300. Inthis situation, the execution environment 300 may be referred to as asystem environment or platform.

If an event to launch the virtualized application 200 occurs after anexternal hard drive in which the virtualized application 200 is storedis connected to an external computing system, a search for a licensepre-stored in the virtualized application 200 is performed in operationS120. For example, if a user double clicks on an execution file of thevirtualized application 200 on a display screen of an external computingsystem, an operation may launch the virtualized application 200.

Accordingly, the license monitor 220 may search for a license requiredto execute the virtualized application 200 according to the executionpolicy while monitoring the execution policy.

For example, if an execution policy stating that ‘The applicationsoftware 210 may be used from Jan. 25, 2007, to Jan. 25, 2008’ is set,the phrase ‘from Jan. 25, 2007, to Jan. 25, 2008’ may be a license. Inthis situation, the license may take various forms according to the typeof execution policy. For example, the license may include a unique ID(or a serial number), an execution period, the number of times ofexecution (for example, a situation in which an execution policyregarding the volume copy is applied), the type and version of the OS(for example, Windows Vista or certain versions of Windows Vista), or acertain execution environment (for example, a situation in which arandom-access memory (RAM) or a CPU is fabricated by a certainmanufacturer).

After the search in operation S120, whether the license for the systemenvironment conforms with the license pre-stored in the virtualizedapplication 200 may be determined while the system environment is beingmonitored in operation S130.

Specifically, if the license is received by the environment identifier242, the policy monitor 244 determines whether the license received fromthe execution environment 300 conforms with the license for theexecution policy pre-stored in the virtualized environment 230 inoperation S130.

If it is determined that the license for the system environment, namelythe execution environment 300, conforms with the license pre-stored inthe virtualized application 200 in operation S130-Y, the applicationlauncher 246 launches the virtualized application 200 according to theexecution policy in operation S140. For example, if the ID of a CPU inthe system environment is ‘1234’, and if the ID of a CPU pre-stored inthe application software 210 is also ‘1234’, the application launcher246 of the environment monitor 240 may launch the virtualizedapplication 200 according to the execution policy in operation S140.

Alternatively, if it is determined that the license for the systemenvironment does not conform with the pre-stored license in operationS130-N (for example, if the ID of the CPU in the system environment is‘1234’ but if the ID of the CPU pre-stored in the application software210 is ‘1111’), it is impossible for the application launcher 246 tolaunch the virtualized application 200. Therefore, the authenticationprocess as described above prevents the virtualized application 200 frombeing freely copied without any limitations by various executionpolices.

FIG. 4 illustrates a flowchart of a method of executing a virtualizedapplication able to run in a virtualized environment according toanother exemplary embodiment of the present invention. The method shownin FIG. 4 includes receiving an updated execution policy (S410),determining whether a license for a system environment conforms with alicense pre-stored in the virtualized application (S420), and launchingthe virtualized application according to the updated execution policy(S430) if it is determined that the license for the system environmentconforms with the license pre-stored in the virtualized application(S420-Y). If it is determined that the license for the systemenvironment does not conform with the license pre-stored in thevirtualized application, then the method ends (S420-N).

Hereinafter, operation S410 will be described in detail with referenceto FIGS. 5 to 7. Operations S420 and S430 may be performed in a similarmanner as operations S130 and S140, so no further description thereof isherein provided. Operation S410 may also be performed in the same manneras operations S110 and S120 shown in FIG. 1.

FIG. 5 illustrates a block diagram explaining the principle of operationof a virtualized application 500 able to run in a virtualizedenvironment 520. In FIG. 5, the virtualized application 500 includesapplication software 510 and the virtualized environment 520. Thevirtualized environment 520 includes an environment monitor 530. Thevirtualized environment 520 may be integrated with the environmentmonitor 530 and operate based on a plurality of external executionenvironments 610 to 640. When the virtualized application 500 isexecuted in the plurality of external execution environments 610 to 640,the environment monitor 530 determines whether the virtualizedapplication 500 complies with the respective execution policies of eachof the plurality of external execution environments 610 to 640. Eachenvironment ID indicating each of the plurality of external executionenvironments 610 to 640 may be a license for the execution policy.Additionally, the execution policies of the plurality of externalexecution environments 610 to 640 may be updated by an external policyserver 700.

FIG. 6 illustrates an example of updating an execution policy. In FIGS.5 and 6, the external policy server 700 connected to a network (notshown) updates the execution policy. In more detail, mutualauthentication is performed between the external policy server 700 andthe environment monitor 530 of the virtualized environment 520. Thecurrent execution policy pre-stored in the environment monitor 530 istransmitted to the external policy server 700. The external policyserver 700 receives the current execution policy and determines whetherthe received current execution policy is up-to-date. If it is determinedthat the received current execution policy is not up-to-date, theexternal policy server 700 updates the current execution policy andtransmits the updated execution policy to the environment monitor 530.

The operations of the application software 510 respectively, with eachof the plurality of external execution environments 610 to 640 havealready been described with reference to FIGS. 1 and 5, so no furtherdescription thereof herein provided.

FIG. 7 illustrates another example of updating an execution policy in asituation in which there is no external policy server 700 (FIG. 5) ofFIG. 6. A process of updating the execution policy shown in FIG. 7 isperformed in the same manner as that shown in FIGS. 5 and 6, except thathere, the virtualized application 500 (FIG. 5) complies with the lastupdated execution policy among the execution policies pre-stored in thevirtualized environment 520, so no further description thereof is hereinprovided.

The method of executing a virtualized application able to run in avirtualized environment, as described above, may be performed by acomputer-readable recording medium containing a program to cause acomputer to perform the method.

Aspects of embodiments of the present invention can be embodied ascomputer-readable codes on a computer-readable recording medium. Thecomputer-readable recording medium is any data storage device that canstore data which can be thereafter read by a computer system or computercode processing apparatus. Examples of the computer-readable recordingmedium include read-only memory (ROM), RAM, CD-ROMs, magnetic tapes,floppy disks, optical disks and optical data storage devices.Additionally, according to aspects of embodiments of the presentinvention, the computer-readable codes can be realized as data signalsembodied in carrier waves.

As described above, according to aspects of embodiments of the presentinvention, it is possible to prevent software able to run in avirtualized environment from being freely copied without any limitationsby the execution policy provided by a software provider.

Although a few embodiments have been shown and described, it would beappreciated by those skilled in the art that changes may be made inthese embodiments without departing from the principles and spirit ofthe invention, the scope of which is defined in the claims and theirequivalents.

What is claimed is:
 1. A method of executing a virtualized applicationable to run in a virtualized environment, the method comprising: using acomputer to perform the method of: searching for a license pre-stored inthe virtualized application, upon an occurrence of an event to launchthe virtualized application; monitoring a system environment having acentral processing unit, the system environment being directly andexternally connected to the virtualized environment; determining whethera license received from the system environment conforms with thepre-stored license by comparing the license received from the systemenvironment with the license pre-stored in the virtualized application;and launching the virtualized application to run in the virtualizedenvironment, according to an execution policy of the virtualizedapplication, upon determining that the license received from the systemenvironment conforms with the pre-stored license, wherein thedetermining of whether the license received from the system environmentconforms with the pre-stored license is performed by an environmentmonitor included in the virtualized application in the virtualizedenvironment.
 2. The method as claimed in claim 1, wherein thedetermination of whether the license received from the systemenvironment conforms with the pre-stored license is a preconditionrequired to perform the execution policy of the virtualized application.3. The method as claimed in claim 1, wherein the execution policy of thevirtualized application is capable of being updated by an externalserver.
 4. The method as claimed in claim 1, further comprising:installing the virtualized application.
 5. The method as claimed inclaim 1, wherein the virtualized environment comprises an environment inwhich conditions required for installing the virtualized application inthe system environment are set virtually.
 6. The method as claimed inclaim 1, wherein each of the license received from the systemenvironment and the pre-stored license are selected from a groupcomprising an identification (ID), an execution period, a number oftimes of execution, a type and version of operating system (OS), and anexecution environment.
 7. The method as claimed in claim 1, furthercomprising: searching for an execution policy and the license in thesystem environment; receiving environment identification informationfrom the system environment which includes information on a license forthe system environment; receiving an execution policy from the systemenvironment; determining whether the virtualized application complieswith the received execution policy from the system environment; whereinthe environment monitor performs the determining of whether thevirtualized application complies with the received execution policy. 8.A method of executing a virtualized application able to run in avirtualized environment, the method comprising: using a computer toperform the method of: receiving an updated execution policy;determining whether a license received from a system environment havinga central processing unit conforms with a license pre-stored in thevirtualized application, by comparing the license received from thesystem environment with the license pre-stored in the virtualizedapplication; and launching the virtualized application to run in thevirtualized environment, according to the updated execution policy, upondetermining that the license received from the system environmentconforms with the pre-stored license, wherein the determining of whetherthe license received from the system environment conforms with thepre-stored license is performed by an environment monitor which isincluded in the virtualized application in the virtualized environment,wherein the system environment is directly and externally connected tothe virtualized environment.
 9. The method as claimed in claim 8,wherein the receiving comprises: transmitting one of a plurality ofexecution policies pre-stored in the virtualized environment to anexternal server; determining whether the transmitted execution policy isup-to-date; and receiving the updated execution policy from the externalserver, when it is determined that the transmitted execution policy isnot up-to-date.
 10. The method as claimed in claim 8, wherein thereceiving comprises receiving a last updated execution policy among aplurality of execution policies pre-stored in the virtualizedenvironment.
 11. A computer-readable recording medium having a programcausing a computer to perform a method of executing a virtualizedapplication able to run in a virtualized environment, wherein the methodcomprises: searching for a license pre-stored in the virtualizedapplication, upon an occurrence of an event to launch the virtualizedapplication; monitoring a system environment having a central processingunit, the system environment being directly and externally connected tothe virtualized environment; determining whether a license received fromthe system environment conforms with the pre-stored license by comparingthe license received from the system environment with the licensepre-stored in the virtualized application; and launching the virtualizedapplication to run in the virtualized environment according to anexecution policy of the virtualized application, upon determining thatthe license received from the system environment conforms with thepre-stored license, wherein the determining of whether the licensereceived from the system environment conforms with the pre-storedlicense is performed by an environment monitor, which is included in thevirtualized application in the virtualized environment.
 12. Thecomputer-readable recording medium as claimed in claim 11, wherein thedetermination of whether the license received from for the systemenvironment conforms with the pre-stored license is a preconditionrequired to perform the execution policy of the virtualized application.13. The computer-readable recording medium as claimed in claim 11,wherein the method further comprises installing the virtualizedapplication.
 14. The computer-readable recording medium as claimed inclaim 11, wherein the method further comprises: searching for anexecution policy and the license in the system environment; receivingenvironment identification information from the system environment whichincludes information on a license for the system environment; receivingan execution policy from the system environment; determining whether thevirtualized application complies with the received execution policy fromthe system environment; wherein the environment monitor performs thedetermining of whether the virtualized application complies with thereceived execution policy.
 15. A computer-readable recording mediumhaving a program causing a computer to perform a method of executing avirtualized application able to run in a virtualized environment,wherein the method comprises: receiving an updated execution policy;determining whether a license received from a system environment havinga central processing unit conforms with a license pre-stored in thevirtualized application by comparing the license received from thesystem environment with the license pre-stored in the virtualizedapplication; and launching the virtualized application to run in thevirtualized environment, according to the updated execution policy, upondetermining that the license received from the system environmentconforms with the pre-stored license, wherein the determining of whetherthe license received from the system environment conforms with thepre-stored license is performed by an environment monitor, which isincluded in the virtualized application in the virtualized environment,wherein the system environment is directly and externally connected tothe virtualized environment.
 16. The computer-readable recording mediumas claimed in claim 15, wherein the receiving comprises: transmittingone of a plurality of execution policies pre-stored in the virtualizedenvironment to an external server; determining whether the transmittedexecution policy is up-to-date; and receiving the updated executionpolicy from the external server, when it is determined that thetransmitted execution policy is not up-to-date.
 17. Thecomputer-readable recording medium as claimed in claim 15, wherein thereceiving comprises receiving a last updated execution policy among aplurality of execution policies pre-stored in the virtualizedenvironment.